Method, system and computer program product for verification of the accuracy of numerical data in the solution of a boundary value problem

ABSTRACT

The present invention relates to an estimation of computational errors appearing in the finite element calculations, particularly to method, system and program product for verification of the accuracy of numerical data measured in terms of problem-oriented criteria, where the numerical data are computed in the process of solution of a boundary value problem. In addition to the primal problem a certain adjoin problem is formed and solved. The method is based on two principles:  
     (a) the original and adjoint problems are solved on non-coinciding meshes, and  
     (b) the term presenting the product of errors arising in the primal and adjoint problems is estimated by the gradient recovery technique.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to an estimation of computational errors appearing in the finite element calculations, particularly to method, system and program product for verification of the accuracy of numerical data measured in terms of problem-oriented criteria, where the numerical data are computed in the process of solution of a boundary value problem, which is defined by one or several partial differential equations (PDEs), governing an unknown physical quantity in a solution domain, and boundary conditions.

[0003] 2. Description of the Prior Art

[0004] Finite Element Method (FEM) is a very powerful and nowadays the most popular numerical method for solving the partial differential equations (PDEs). The concept of FEM consists of discretizing the solution domain into a set (called the mesh) consisting of small elements with simple shapes. The mesh is characterized by a number of degrees of freedom (DOF), we denote it by n in the text. In structural mechanics, the DOF represent the virtual displacements on points (nodes), where the (finite) elements are constructed. The finite element (FE) solution is built from the solution of a system of n linear algebraic equations. Engineers have years of experience and practice in the finite element calculations and analysis. When designing e.g. a new structure, the mechanical engineer can use the FEM to calculate a tension distribution in a structure (e.g., in frame, crankshaft or beam). Normally, there are a few critical areas to be carefully analysed. An ordinary approach is to perform computations on more and more dense mesh, hoping that the computed approximate solutions are becoming more and more closer to the exact solution (which is normally not known at all). But the closeness of such calculated approximations to the exact solution can be illusory in many respects, and the computed data (numbers) can be far from the truth, thus being rather unreliable and useless. A solution of this problem is an availability of certain tools (software) for the engineers and designers for explicit control of the error between the exact solution and the computed approximation. A development of theoretical backgrounds and various techniques for building of such tools (called a priori error estimates) has been a main topic in the modern numerical analysis last two decades. For the finite element methods, such a priori error estimates are usually obtained either by estimating a weak norm of the residual [1] or by using special postproces sing procedures [5]. For the Galerkin (finite element) approximations of linear elliptic problems, they estimate the error in the global (energy) norm and also provide an error indicators that are further used in various mesh adaptive procedures. Global error estimates give a general presentation on the quality of an approximate solution and a stopping criteria. However, from the viewpoint of engineering purposes, such an information is often not sufficient. In many cases, the engineers are interested not in the value of the total error, but, as was mentioned above, in errors over certain critical areas: subdomains, lines, or at special points. A possible way of estimating such type of errors is to introduce a certain linear functional l associated with a critical area, where l(u) is often called as a problem-oriented criterion or “quantity of interest”, and to obtain an estimate for the value of l(u−v), where u is the exact solution and v is the approximate one. Known methods [2] find estimates for l(u−u_(h)) for the Galerkin approximations u_(h) by employing an auxiliary (often called as adjoint) problem, whose right-hand side is formed by the functional l. If the Galerkin approximation of the adjoint problem is computed on the same mesh as u_(h), then the functional value l(u−u_(h)) is expressed via a certain integral functional, which can be estimated by using, e.g., the “equilibrated residual method” [4]. However, all the results obtained by now are rather far from being satisfactory.

[0005] What is needed is a reliable and effective method, system and program product for verification of the accuracy of numerical data measured in terms of problem-oriented criteria.

OBJECTS AND SUMMARY OF THE INVENTION

[0006] We present a new method for estimation of the “quantities of interest” [3] as well as a system and a program product for implementing the method. It is based on two principles:

[0007] (a) the original and adjoint problems are solved on non-coinciding meshes, and

[0008] (b) the term presenting the product of errors arising in the primal and adjoint problems is estimated by the gradient recovery technique widely used in various applied problems.

[0009] These features differ our method from others, who are usually assumed that the Galerkin approximations of the primal and auxiliary (adjoint) problems should be computed on the same finite dimensional subspaces.

[0010] Using the fact of non-coincidence of the meshes, we obtain a new estimator which is a sum of two terms (E₀) and (E₁), where the first term (E₀) contains the major part of the “quantity of interest”, but vanishes whenever the mesh coincide. The effectivity of the method is demonstrated for one- and two-dimensional problems, part of which is presented in the text later on.

[0011] In the preferred embodiment the estimator (E) is a sum of the first term (E₀) and the second term (E₁), where

[0012] the first term (E₀) is computable as a sum of three parts, where the first part is an integral over the solution domain (Ω) of a product of the source function (f) and the second approximation (v_(τ)), the second part is an integral over the Neumann boundary (Γ₂) of a product of the boundary function (g) and the second approximation (v_(τ)), and the third part is a minus integral over the solution domain (Ω) of an energy scalar products of the gradients of the first (u_(h)) and the second (v_(τ)) approximations, and

[0013] the second term (E₁) is the integral over the solution domain (Ω) of the energy scalar product of two vector-functions, where the first vector-function is the difference between the gradient of the first approximation (u_(h)) and the averaged gradient of the first approximation (u_(h)), and the second vector-function is the difference between the gradient of the second approximation (v_(τ)) and the averaged gradient of the second approximation (v_(τ)).

[0014] The effectivity of the method proposed, strongly increases when one is interested not in a single solution of the primal problem for a concrete data, but analyzes a series of approximate solutions for a certain set of boundary conditions and various right-hand sides (and such a situation is very typical in the engineering design, when it is necessary to model the behaviour of a construction for various working regimes). In this case, the adjoint problem must be solved only once for each “quantity of interest”, and its solution can be further used in testing the accuracy of approximate solutions of various primal problems (i.e. with various source functions).

[0015] The present invention can be implemented using a computer. An exemplary computer includes one or more processors, memory (like ROM, RAM and hard-drive), input device (like keyboard, floppy disk drive) and output device (like display and printer). Method can be implemented directly for any software using FEM as a computational tool. Without any new software the first and second approximations as well as computing the estimator must be executed separately. We present new software, which includes all necessary routines and interface for an implementation.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In the following, the invention is examined with the aid of the accompanying drawings and examples. In the drawings illustrates a solution domain with basic denotations for the diffusion type problem

[0017]FIG. 1 illustrates a solution domain with basic denotations

[0018]FIG. 2 illustrates a part of standard finite element mesh and a patch associated with one of its nodes

[0019]FIG. 3 illustrates an elastic body as a solution domain with basic denotations for the linear elasticity problem

[0020]FIG. 4 illustrates main desktop of CHECKER-software

[0021]FIG. 5 illustrates setting the domain and the zone of interest in Matlab® PDE Toolbox

[0022]FIG. 6 illustrates the export window of Matlab® PDE Toolbox for exporting domain data and formula data for the primal problem to CHECKER-software

[0023]FIG. 7 illustrates setting the boundary conditions in Matlab® PDE Toolbox

[0024]FIG. 8 illustrates the export window for exporting data of the zone of interest and boundary conditions to CHECKER-software

[0025]FIG. 9 illustrates the process of solving the primal problem in CHECKER-software

[0026]FIG. 10 illustrates the process of solving the auxiliary (adjoint) problem in CHECKER-software

[0027]FIG. 11 illustrates the process of solving the auxiliary problem with a local refinement in the zone of interest in CHECKER-software

[0028]FIG. 12 illustrates CHECKER desktop with visible results of

[0029]FIG. 13 illustrates a block diagram of CHECKER-software with short step references A-E

[0030]FIG. 14 illustrates the source function of the one-dimensional test problem

[0031]FIG. 15 illustrates the exact and the approximate solutions and the zone of interest of the one-dimensional test problem

[0032]FIG. 16 illustrates the behaviour of the effectivity index in various mesh parameters

[0033]FIG. 17 illustrates the meshes T_(h) and T_(τ) for the one-dimensional test problem

[0034]FIG. 18 illustrates a flowchart for computing an approximation and an error estimation

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] Table of Contents

[0036] I. Model Theory

[0037] A. Introduction

[0038] B. Problem Formulation—Diffusion-Type Problem

[0039] 1. Mathematical model

[0040] 2. Finite element solution

[0041] 3. Problem-oriented criterion

[0042] 4. Error estimation

[0043] 5. Technique for the error estimation in terms of problem-oriented criteria

[0044] 6. Auxiliary problem and its finite element solution

[0045] 7. Gradient averaging procedures

[0046] 8. Formula for calculation of the estimator

[0047] 9. Error estimation algorithm

[0048] C. Problem Formulation—Linear Elasticity Problem

[0049] 1. Mathematical model

[0050] 2. Finite element solution

[0051] 3. Problem-oriented criterion

[0052] 4. Error estimation

[0053] 5. Technique for the error estimation in terms of problem-oriented criteria

[0054] 6. Auxiliary problem and its finite element solution

[0055] 7. Tensor averaging procedures

[0056] 8. Formula for calculation of the estimator

[0057] 9. Error estimation algorithm

[0058] D. Advantages Of The Technique

[0059] II. Implementation In A System

[0060] A. Introduction

[0061] B. Presentation of Software Product with a Model

[0062] III. Model Example—One Dimensional Case

[0063] I Model Theory

A—Introduction

[0064] The method presented below is designed to verify the accuracy of FE approximations, measured in terms of “problem-oriented” criterion that can be chosen by users. The method is applic able to various problems in mechanics and physics embracing diffusion and linear elasticity problems. It can be easily coded and attached as an independent programme-checker to the most of existing educational and industrial codes.

B—Problem Formulation Part—Diffusion-Type Problem

[0065] B.1 Mathematical Model

[0066] We consider physical process that can be formally modelled in the form of a boundary value problem of elliptic type (BVP) as follows referring to FIG. 1: Find a function u=u(x₁, . . . ,x_(d)) of d variables x₁, . . . ,x_(d) such that $\begin{matrix} {{{- {\sum\limits_{i,{j = 1}}^{d}{\frac{\partial\quad}{\partial x_{i}}\left( {a_{ij}\frac{\partial u}{\partial x_{j}}} \right)}}} = {f\quad {in}\quad \Omega}},} & (1) \end{matrix}$

 u=u₀ on Γ₁, (2a) $\begin{matrix} {{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u}{\partial x_{j}}n_{i}}} = {g\quad {on}\quad {\Gamma_{2}.}}} & \left( {2b} \right) \end{matrix}$

[0067] In the above, relation (1) is a process governing equation in the solution domain Ω⊂R^(d), where a_(ij)=a_(ij)(x₁, . . . ,x_(d)),i,j=1, . . . ,d, are the given coefficients of the problem that usually describe the diffusion properties of the respective media. This model also applies to stationary magnetic, electric, and temperature field, or some phenomena in the linear elasticity or fluid flow. The function f=f(x₁, . . . ,x_(d)) can be viewed as a given source function. The coefficients are assumed to be bounded functions and function f is assumed to be square summable. Further, relations (2a) and (2b) are boundary conditions on the boundary Γ of Ω, more precisely, they prescribe a behaviour of the solution and its derivatives on two nonintersecting boundary parts Γ₁ and Γ₂, respectively, i.e., Γ=Γ_(1∪Γ) ₂. The function u₀=u₀(x₁, . . . ,x_(d)) belongs to the natural energy class of the problem and g=g(x₁, . . . ,x_(d)) is a square summable function, symbol n_(i) denotes the i-th component of the outward normal vector n=n(x₁, . . . ,x_(d)) to the boundary Γ, i.e., n=[n₁, . . . ,n_(d)]^(T) (see FIG. 1).

[0068] The above assumptions are not restrictive and cover the bulk of practically meaningful cases.

[0069] B.2 Finite Element Solution of (1)-(2)

[0070] Let V_(h) be a finite-dimensional space constructed by means of a selected set of finite element trial functions defined on a standard finite element mesh T_(h) (called the first mesh) over the solution domain Ω, see FIG. 2. We notice that space V_(h) is chosen so that its functions w_(h) vanish on Γ₁.

[0071] The first approximation for problem (1)-(2) is defined as a function

u _(h) =u _(h)(x ₁ , . . . ,x _(d))εV _(h) +u ₀,

[0072] such that $\begin{matrix} {{\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u_{h}}{\partial x_{j}}\frac{\partial w_{h}}{\partial x_{i}}{x}}}} = {{\int_{\Omega}{{fw}_{h}{x}}} + {\int_{\Gamma_{2}}{{gw}_{h}{s}\quad {\forall{w_{h} \in {V_{h}.}}}}}}} & (3) \end{matrix}$

[0073] B.3 Problem-Oriented Criterion

[0074] Users are often interested not only in the overall error e=u−u_(h), but also in its local behaviour, e.g., in a certain subdomain ω⊂Ω. One way to get information about the local behaviour of u−u_(h) is to measure the error in terms of specially selected problem-oriented criteria on “quantity of interest”. One of the most typical criteria of such a type is presented by the integral $\begin{matrix} {{\int_{\Omega}{{\phi \left( {u - u_{h}} \right)}{x}}},} & (4) \end{matrix}$

[0075] where φ=φ(x₁. . . ,x_(d)) is a selected weight function vanishing outside of the zone of interest.

[0076] B.4 Error Estimation

[0077] Error estimators are intended to show the value of the error in the subdomain, which is the most interesting for an engineer. Also they suggest information on that how to improve an approximate solution computed if the accuracy obtained is not sufficient. At this point we note that our estimator is given by the integral whose integrand could serve as the respective indicator. Namely, if the accuracy achieved is not sufficient, then additional degrees of freedom (new elements) must be added in those parts of the solution domain, where the integrand is excessively high.

[0078] B.5 Technique for the Error Estimation in Terms of Problem Oriented Criteria

[0079] To present the technique for estimation of criterion (4), we describe two technical problems that must be previously solved. They consist of finding an approximate solution of an auxiliary problem (so-called adjoint problem) and making a certain post-processing of this solution v_(o), and also making a post-processing of the finite element approximation u_(h).

[0080] B.6 Auxiliary Problem and its Finite Element Solution

[0081] Let V_(τ) be the second finite-dimensional space constructed by means of a selected set of finite element trial functions on another standard finite element mesh T_(τ) (called the second mesh) over the solution domain Ω. We notice that space V_(τ) is chosen so that its functions w_(r) vanish on Γ, and also that T_(τ) need not to coincide with T_(h), see FIG. 2. A part of standard finite element mesh and a patch associated with node.

[0082] Consider the auxiliary finite-dimensional problem as follows: Find a function

v _(τ) =v _(τ)(x ₁ , . . . , x _(d))δV _(τ),

[0083] such that $\begin{matrix} {{\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ji}\frac{\partial v_{\tau}}{\partial x_{j}}\frac{\partial w_{\tau}}{\partial x_{i}}{x}}}} = {\int_{\Omega}{\phi \quad w_{\tau}{x}\quad {\forall{w_{\tau} \in {V_{\tau}.}}}}}} & (5) \end{matrix}$

[0084] B.7 Gradient Averaging Procedures

[0085] On the first mesh T_(h), we define the gradient averaging transformation G_(h) mapping the gradient of the finite element approximation u_(h) $\begin{matrix} {{{\nabla u_{h}} = \left\lbrack {\frac{\partial u_{h}}{\partial x_{1}},\ldots \quad,\frac{\partial u_{h}}{\partial x_{d}}} \right\rbrack^{T}},} & (6) \end{matrix}$

[0086] which is constant over each element of the finite element mesh, into a vector-valued continuous piecewise affine function

G _(h)(∇u_(h))=[G _(h) ¹(∇u _(h)), . . . , G _(h) ^(d)(∇u_(h))]^(T),  (7)

[0087] by setting each its nodal value as the mean value of ∇u_(h) on all elements of the patch P(x_(o)) associated with corresponding node x_(o) in the mesh T_(h).

[0088] More precisely, let $\frac{\partial u_{h}}{\partial x_{i}}_{T_{k}}$

[0089] denote the value of i-th coordinate of gradient ∇u_(h) over triangle T_(k), let x_(o) be one of nodes of finite element mesh T_(h), and let T₁, . . . , T_(N) _(xo) be elements of the mesh having node x_(o) as one of their vertices. The union of such elements is called the patch and denoted as P(x_(o)). (Thus, in terms of FIG. 2, the patch consists of six triangles, i.e., N_(x)=6.) Then, we define $\begin{matrix} {{{G_{h}^{i}\left( {\nabla u_{h}} \right)}\left( x_{*} \right)} = {\frac{1}{N_{x_{*}}}{\sum\limits_{T_{k} \in {P{(x_{*})}}}^{\quad}{\frac{\partial u_{h}}{\partial x_{i}}{_{T_{k}}{,{i = 1},\ldots \quad,d,{or}}}}}}} & \left( {8a} \right) \\ {{{G_{h}^{i}\left( {\nabla u_{h}} \right)}\left( x_{*} \right)} = {\frac{1}{{measT}_{1} + \ldots + {measT}_{N_{x_{*}}}}{\sum\limits_{T_{k} \in {P{(x_{*})}}}^{\quad}{{{measT}_{k} \cdot \frac{\partial u_{h}}{\partial x_{i}}}{_{T_{k}}{,{i = 1},\ldots \quad,d,}}}}}} & \left( {8b} \right) \end{matrix}$

[0090] where the symbol meas denotes the area of corresponding triangle.

[0091] Having G_(h)(∇u_(h)) defined at all nodes of the mesh T_(h), we uniquely define continuous piecewise affine function G_(h) ^(i)(∇u_(h)) over the whole domain Ω. In this way, the vector-valued continuous piecewise affine function G_(h)(∇u_(h)) in (7) is built. Similarly, on T_(τ), we define the gradient averaging transformation G_(τ) mapping the gradient of the finite element approximation V_(τ) $\begin{matrix} {{{\nabla v_{\tau}} = \left\lbrack {\frac{\partial v_{\tau}}{\partial x_{1}},\ldots \quad,\frac{\partial v_{\tau}}{\partial x_{d}}} \right\rbrack^{T}},} & (9) \end{matrix}$

[0092] which is constant over each element of the finite element mesh, into a vector-valued continuous piecewise affine function

G _(τ)(∇v _(τ))=[G _(τ) ¹(∇v _(τ)), . . . ,G _(τ) ^(d)(∇v _(τ))]^(T),  (10)

[0093] by setting each its nodal value as the mean value of ∇v_(τ) on all elements of the patch P(x_(o)) associated with corresponding node x_(o) in the mesh T_(τ).

[0094] More precisely, let

[0095] denote the value of i-th coordinate of gradient ∇v_(τ) over triangle T_(k), let x_(o) be one of nodes of finite element mesh T_(τ), and let T₁, . . . , $\begin{matrix} {{{E_{0}\left( {u_{h},v_{\tau}} \right)} = {{\int_{\Omega}{f\quad v_{\tau}{x}}} + {\int_{\Gamma_{2}}{{gv}_{\tau}{s}}} - {\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u_{h}}{\partial x_{j}}\frac{\partial v_{\tau}}{\partial x_{i}}{x}}}}}},{and}} & (13) \\ {{E_{1}\left( {u_{h},v_{\tau}} \right)} = {\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{{a_{ij}\left( {\frac{\partial u_{h}}{\partial x_{j}} - {G_{h}^{j}\left( {\nabla u_{h}} \right)}} \right)}\left( {\frac{\partial v_{\tau}}{\partial x_{i}} - {G_{\tau}^{i}\left( {\nabla v_{\tau}} \right)}} \right){{x}.}}}}} & (14) \end{matrix}$

[0096] T_(N) _(xo) be elements of the mesh having node x_(o) as one of their vertices. The respective patch is denoted as P(x_(o)). Then $\begin{matrix} {{{G_{\tau}^{i}\left( {\nabla v_{\tau}} \right)}\left( x_{o} \right)} = {\frac{1}{N_{x_{o}}}{\sum\limits_{T_{k} \in {P{(x_{o})}}}^{\quad}{\frac{\partial v_{\tau}}{\partial x_{i}}{_{T_{k}}{,{i = 1},\ldots \quad,{d.{or}}}}}}}} & \left( {11a} \right) \\ {{{G_{\tau}^{i}\left( {\nabla v_{\tau}} \right)}\left( x_{o} \right)} = {\frac{1}{{measT}_{1} + \ldots + {measT}_{N_{x_{o}}}}{\sum\limits_{T_{k} \in {P{(x_{o})}}}^{\quad}{{{measT}_{k} \cdot \frac{\partial v_{\tau}}{\partial x_{i}}}{_{T_{k}}{,{i = 1},\ldots \quad,{d.}}}}}}} & \left( {11b} \right) \end{matrix}$

[0097] Having G_(τ) ^(i)(∇v_(τ))(x_(o)) at all nodes x_(o), we uniquely define continuous piecewise affine function G_(τ) ^(i)(∇v_(τ)) over the whole domain Ω. In this way, the vector-valued continuous piecewise affine function G_(τ)(∇v_(τ)) in (10) is built.

[0098] Such averaging transformations are widely used in the finite element calculations. Usually they lead to computationally inexpensive algorithms.

[0099] B.8 Formula for Calculation of the Estimator

[0100] Our method estimates the quantity (4) by the quantity E(u_(h),v_(τ)) presented by the following formula:

E(u _(h) ,v _(τ)):=E ₀(u _(h) ,v _(τ))+E ₁(u _(h),v_(τ)),  (12)

[0101] where $\frac{\partial v_{\tau}}{\partial x_{i}}_{T_{k}}$

[0102] The functional E(u_(h),v_(τ)) is directly computable once the approximations uh and v, are found.

[0103] B.9. Error Estimation Algorithm

[0104] Step 1: Pose a problem of type (1)-(2a,b); (Step A in FIGS. 13 and 18)

[0105] Step 2: Find u_(h) in (3); (Step B)

[0106] Step 3: Select criterion (4), i.e. subdomain ω and function φ; (Step C)

[0107] Step 4: Solve auxiliary problem (5) and find v_(τ); (Step D)

[0108] Step 5: Construct/form G_(h)(∇u_(h)) by (8a) or (8b); (Estimation

[0109] Step 6: Construct/form G_(τ)(∇v_(τ)) by (11a) or (11b); (Estimation)

[0110] Step 7: Compute E₀(u_(h),v_(τ)); (Estimation)

[0111] Step 8: Compute E₁(u_(h),v_(τ)); (Estimation)

[0112] Step 9: Compute E(u_(h),v_(τ)); (Estimation)

[0113] (Steps 5-9 correspond step E in FIGS. 13 and 18.

[0114] Optional step 10: change initial parameters. (Step F1 or F2)

C—Problem Formulation—Linear Elasticity Problem

[0115] C.1 Mathematical Model

[0116] We consider mechanical problem of elasticity that can be formally presented in the form of a system of linear elasticity equations as follows: Find a vector-function (called the displacement) u=u(x₁, . . . ,x_(d))=[u₁, . . . ,u_(d)]^(T) of d variables x₁, . . . ,x_(d) such that, for i=1, . . . ,d $\begin{matrix} {{{- {\sum\limits_{j,k,{l = 1}}^{d}{\frac{\partial\quad}{\partial x_{j}}\left( {L_{ijkl}{ɛ_{kl}(u)}} \right)}}} = {f_{i}\quad {in}\quad \Omega}},} & (1) \end{matrix}$

 u_(i)=u₀ ^(i) on Γ₁,  (2a) $\begin{matrix} {{\sum\limits_{j,k,{l = 1}}^{d}{n_{j}L_{ijkl}{ɛ_{kl}(u)}}} = {g_{i}\quad {on}\quad {\Gamma_{2}.}}} & \left( {2b} \right) \end{matrix}$

[0117] In the above, relation (1) is a governing system of equations in the solution domain (body) Ω⊂R^(d), where L_(ijkl)=L_(ijkl)(x₁, . . . ,x_(d)),i,j=1, . . . ,d, are the given coefficients of the problem that usually describe the elastic properties of the respective body, and the vector-function f=f(x₁, . . . ,x_(d))=[f₁, . . . f_(d)]^(T) represents a given body force. The coefficients are assumed to be bounded functions and function f is assumed to be square summable. In addition, the coefficients satisfy the following symmetry conditions

L_(jikl)=L_(ijkl)=L_(klij), i,j,k,l=1, . . . ,d.  (3)

[0118] Further, the functions ε_(ij)(u),i,j=1, . . . ,d, are defined as follows $\begin{matrix} {{{ɛ_{ij}(u)} = {\frac{1}{2}\left( {\frac{\partial u_{i}}{\partial x_{j}} + \frac{\partial u_{j}}{\partial x_{i}}} \right)}},} & (4) \end{matrix}$

[0119] they form the so-called small strain (or deformation) tensor (d×d matrix) ε(u).

[0120] The relations (2a) and (2b) are boundary conditions on the boundary Γ of Ω, more precisely, they prescribe a behaviour of the solution and its derivatives on two nonintersecting boundary parts Γ₁ and Γ₂, respectively, i.e., Γ=Γ₁∪Γ₂. The vector-functions u₀=u₀(x₁, . . . ,x_(d))=[u₀ ¹, . . . ,u₀ ^(d)]^(T) represents the external force and belongs to natural energy class of the problem and g=g(x₁, . . . ,x_(d))=[g₁, . . . ,g_(d)]^(T) is a square summable function. The function g represents the external force. The symbol n_(i) denotes the i-th component of the outward normal vector n=n(x₁, . . . ,x_(d)) to the boundary Γ, i.e., n=[n₁, . . . ,n_(d)]_(T) (see FIG. 3).

[0121] Above assumptions are not restrictive and cover the bulk of practically meaningful cases.

[0122] C.2 Finite Element Solution of (1)-(2)

[0123] Let V_(h) be a finite-dimensional space constructed by means of a selected set of finite element trial (d-dimensional) vector-functions defined on commonly-used finite element mesh T_(h) over Ω. We notice that space V_(h) is chosen so that its functions w_(h) vanish on Γ₁.

[0124] The finite element approximation for problem (1)-(2) is defined then as a vector-function such that

u _(h) =u _(h)(x ₁ , . . . ,x _(d))=[u _(h) ¹ , . . . ,u _(h) ^(d)]^(T) εV _(h) +u ₀,

[0125] such that $\begin{matrix} {{{\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}{L_{ijkl}{ɛ_{ij}\left( u_{h} \right)}{ɛ_{kl}\left( w_{h} \right)}{x}}}} = {{\int_{\Omega}{{f \cdot w_{h}}{x}}} + {\int_{\Gamma_{2}}{{g \cdot w_{h}}{s}\quad {\forall{w_{h} \in V_{h}}}}}}},} & (5) \end{matrix}$

[0126] where the symbol “dot” denotes the standard vector multiplication.

[0127] C.3 Problem-Oriented Criterion

[0128] Users are often interested not only in the overall error e=u−u_(h), but also in its local behaviour, e.g., in a certain subdomain ∩⊂Ω.

[0129] One way to get an information about the local behaviour of u−u_(h) is to measure the error in terms of specially selected problem-oriented criteria.

[0130] One of the most typical criteria of such a type is presented by the integral $\begin{matrix} {{\int_{\Omega}{{\Phi \cdot \left( {u - u_{h}} \right)}{x}}},} & (6) \end{matrix}$

[0131] where Φ=Φ(x₁, . . . ,x_(d))=[φ₁, . . . ,φ_(d)]^(T) is a selected vector-function such that Φ vanishes outside of the zone of interest (ω). C.4 Error Estimation

[0132] see Section B4.

[0133] C.5 Techniques for The Error Estimation in Terms of Problem-Oriented Criteria

[0134] To present the techniques for estimation of criterion given by (6), we need first to describe two technical problems, that must be previously solved. They consist of finding an approximate solution of an auxiliary problem and making a certain post processing of solutions of this auxiliary problem and also of finite element approximation u_(h).

[0135] C.6 Auxiliary Problem and its Finite Element Solution

[0136] Let V_(r) be another finite-dimensional space constructed by means of a selected set of finite element trial functions on another standard finite element mesh T_(τ) over Ω. We notice that space V_(τ) is chosen so that its functions w_(τ) vanish on Γ, and also that T_(τ) need not to coincide with T_(h).

[0137] Consider the auxiliary finite-dimensional problem as follows: Find a function

v _(τ) =v _(τ)(x ₁ , . . . ,x _(d))εV_(τ),

[0138] such that $\begin{matrix} {{\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}{L_{ijkl}{ɛ_{ij}\left( v_{\tau} \right)}{ɛ_{kl}\left( w_{\tau} \right)}{x}}}} = {\int_{\Omega}{{\Phi \cdot w_{\tau}}{x}\quad {\forall{w_{\tau} \in {V_{\tau}.}}}}}} & (7) \end{matrix}$

[0139] C.7 Tensor Averaging Procedures

[0140] On T_(h), we define the tensor averaging transformation G_(h) mapping the tensor of the finite element approximation uh $\begin{matrix} {{{ɛ\left( u_{h} \right)} = \left\lbrack {\frac{1}{2}\left( {\frac{\partial u_{h}^{i}}{\partial x_{j}} + \frac{\partial u_{h}^{j}}{\partial x_{i}}} \right)} \right\rbrack_{i,{j = 1}}^{d}},} & (8) \end{matrix}$

[0141] which is a constant d×d matrix over each element of the finite element mesh, into a d×d matrix-valued continuous piecewise affine function

G _(h)(ε(u _(h)))=[G _(h) ^(i,j)(ε(u _(h)))]_(i,j=1) ^(d),  (9)

[0142] by setting each its nodal value as the mean value of ε(u_(h)) on all elements of the patch P(x_(o)) associated with corresponding node x_(o) in the mesh T_(h).

[0143] More precisely, let x_(o) be one of nodes of finite element mesh T_(h), and let T₁, . . . , $\begin{matrix} {{{{G_{h}^{i,j}\left( {ɛ\left( u_{h} \right)} \right)}\left( x_{*} \right)} = {\frac{1}{N_{x_{*}}}{\sum\limits_{T_{m} \in {P{(x_{*})}}}^{\quad}{\frac{1}{2}\left( {\frac{\partial u_{h}^{i}}{\partial x_{j}}{_{T_{m}}{+ \frac{\partial u_{h}^{j}}{\partial x_{i}}}}_{T_{m}}} \right)}}}},{or}} & \left( {10a} \right) \\ {{{G_{h}^{i,j}\left( {ɛ\left( u_{h} \right)} \right)}\left( x_{*} \right)} = {\frac{1}{{measT}_{1} + \ldots + {measT}_{N_{x_{*}}}}{\sum\limits_{T_{m} \in {P{(x_{*})}}}^{\quad}{{{measT}_{m} \cdot \frac{1}{2}}{\left( {\frac{\partial u_{h}^{i}}{\partial x_{j}}{_{T_{m}}{+ \frac{\partial u_{h}^{j}}{\partial x_{i}}}}_{T_{m}}} \right).}}}}} & \left( {10b} \right) \end{matrix}$

[0144] T_(N) _(x.) form the patch P(x_(o)) (cf. FIG. 2). Then, we define for i,j=1, . . . ,d

[0145] Having G_(h) ^(i,j)(ε(u_(h))) defined at all nodes of the mesh T_(h), we uniquely define continuous piecewise affine function G_(h) ^(i,j)(ε(u_(h))) over the whole domain Ω. In this way, the matrix-valued continuous piecewise affine function G_(h)(ε(u_(h))) in (9) is built. Similarly, on T_(τ), we define the tensor averaging transformation G_(τ) mapping the tensor of the finite element approximation v_(r) $\begin{matrix} {{{ɛ\left( v_{\tau} \right)} = \left\lbrack {\frac{1}{2}\left( {\frac{\partial v_{\tau}^{i}}{\partial x_{j}} + \frac{\partial v_{\tau}^{j}}{\partial x_{i}}} \right)} \right\rbrack_{i,{j = 1}}^{d}},} & (11) \end{matrix}$

[0146] which is a d×d constant matrix over each element of the finite element mesh, into a d×d matrix-valued continuous piecewise affine function

G _(τ)(ε(v _(τ)))=[G _(τ) ^(i,j)(ε(v _(τ)))]_(i,j=1) ^(d),  (12)

[0147] by setting each its nodal value as the mean value of ∇v_(τ) on all elements of the patch P(x_(o)) associated with corresponding node x_(o) in the mesh T_(τ).

[0148] More precisely, let x_(o) be one of nodes of finite element mesh T_(τ), and let T₁, . . . ,

[0149] T_(N) _(xo) form the patch P(x_(o)). Then, we define for i, j=1, . . . ,d $\begin{matrix} {{{G_{\tau}^{i,j}\left( {ɛ\left( v_{\tau} \right)} \right)}\left( x_{o} \right)} = {{\frac{1}{N_{x_{o}}}{\sum\limits_{T_{m} \in {P{(x_{o})}}}^{\quad}{\frac{1}{2}\left( \frac{\partial v_{\tau}^{i}}{\partial x_{j}} \right._{T_{m}}}}} + {\frac{\partial v_{\tau}^{j}}{\partial x_{i}}\left. _{T_{m}} \right)\quad {or}}}} & \left( {13a} \right) \\ {{{G_{\tau}^{i,j}\left( {ɛ\left( v_{\tau} \right)} \right)}\left( x_{o} \right)} = {\frac{1}{{measT}_{1} + \cdots + {measT}_{N_{x_{o}}}}{\sum\limits_{T_{m} \in {P{(x_{o})}}}^{\quad}{{{measT}_{m} \cdot \frac{1}{2}}\left( {\frac{\partial v_{\tau}^{i}}{\partial x_{j}}{_{T_{m}}{{+ \frac{\partial v_{\tau}^{j}}{\partial x_{i}}}{\left. _{T_{m}} \right).}}}} \right.}}}} & \left( {13b} \right) \end{matrix}$

[0150] Having G_(r) ^(i,j)(ε(v_(τ)))(x_(o)) at all nodes x_(o), we uniquely define continuous piecewise affine function G_(τ) ^(i,j)(ε(v_(τ))) over the whole domain Ω. In this way, the vector-valued continuous piecewise affine function G_(τ)(ε(v_(τ))) in (12) is built.

[0151] C.8 Formula for Calculation of the Estimator

[0152] Our method estimates the quantity (6) by the quantity E(u_(h),v_(τ)) given by the following formula:

E(u _(h) ,v _(τ)):=E ₀(u _(h),v_(τ))+E ₁(u _(h) ,v _(τ)),  (14)

[0153] where $\begin{matrix} {{{E_{0}\left( {u_{h},v_{\tau}} \right)} = {{\int_{\Omega}{{f \cdot v_{f}}{x}}} + {\int_{\Gamma_{2}}{{g \cdot v_{\tau}}{s}}} - {\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}{L_{ijkl}{ɛ_{ij}\left( u_{h} \right)}{ɛ_{kl}\left( v_{\tau} \right)}{x}}}}}},{and}} & (15) \\ {{E_{1}\left( {u_{h},v_{\tau}} \right)} = {\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}{{L_{ijkl}\left( {{ɛ_{ij}\left( u_{h} \right)} - {G_{h}^{i,j}\left( {ɛ\left( u_{h} \right)} \right)}} \right)}\left( {{ɛ_{kl}\left( v_{\tau} \right)} - {G_{\tau}^{k,l}\left( {ɛ\left( v_{\tau} \right)} \right)}} \right){{x}.}}}}} & (16) \end{matrix}$

[0154] The functional E(u_(h),v_(τ)) is directly computable once the approximations u_(h) and v_(τ) are found.

[0155] C.9 Error Estimation Algorithm

[0156] The algorithm is similar as that one presented in Section B9.

D—Advantages of the Technique Presented with Respect to Others Available in the Literature

[0157] In the available scientific literature, several methods of computer verification of the accuracy of approximate solutions in terms of “problem-oriented” criteria has been presented. The main advantages of our method with respect to others can be summarized as follows:

[0158] the estimator contains an extra term, E₀, which is directly computable and contains major part of the error;

[0159] the second term is effectively estimated by means of computationally cheap procedure of “gradient-averaging”;

[0160] the estimator is valid for a wide spectrum of approximations including the case when the meshes for the original and auxiliary (adjoint) problems are different.

II Implementation in a System

[0161] A Introduction

[0162] Now we describe how the method can be implemented in hardware, software, firmware or combinations thereof, particularly in the form of engineering software. Actually, the nature of the proposed methodology allows a development of the program block “CHECKER”, FIG. 13, which can be easily incorporated in or added in some way to the most of the existing commercial software packages using finite element method as a main computational tool (e.g., Matlab®, ADINA®; ANSYS®, MATHCAD®). To illustrate that we shall use the PDE Toolbox of Matlab® package, especially designed for obtaining the numerical solutions for various classes of boundary-value and initial boundary-value problems.

[0163] Thus, using the PDE Toolbox subroutines we have developed a new software, which can help the users of Matlab® not only to calculate numerical solutions for the boundary-value problems, but also effectively estimate their accuracy. Naturally all necessary routines could be integrated into one software package.

[0164] B Software Product and its Usage

[0165]FIG. 4 presents a layout of desktop of the software in a graphical user interface (GUI) and on a display. The desktop (control panel) contains six main blocks: “Define problem”—block 10, “Mesh construction”—block 12, “Reference solution”—block 14, “Construction of adjoint problem”—block 16, “Estimator”—block 18, “Table”—block 20. The software works in a standard PC having processing unit, program and data memory (RAM and hard disk), keyboard, mouse and display. The operating system is Microsoft® Windows, but the software can be implemented in other operating systems, too.

[0166] Block 10 calls the PDE Toolbox main window (FIG. 5) for setting the problem: defining the solution domain, zone of interest, boundary conditions, coefficients, source function, which are exported later to our software, step A in FIG. 18.

[0167] Block 12 is used for a construction of the first mesh using mesh specification parameters of PDE Toolbox of Matlab® such as maximum edge size, growth rate and PDE Toolbox of Matlab® grid generator. The block 12 calls FE-solver of PDE Toolbox for finding the first finite element approximation, step B.

[0168] Block 14 is optional for finding the error (brute force method) if the user has time enough and computer resources for it.

[0169] Block 16 is used to construct the second mesh and find the second finite element approximation for the adjoint problem, step C. It calls PDE Toolbox of Matlab® grid generator and its FE-solver for refining the second mesh in the zone of interest and also globally in the whole solution domain and computing the second approximation, step D.

[0170] Blocks 12, 14, and 16 have special fields, where the parameters of corresponding meshes such as number of triangles and number of nodes are displayed.

[0171] Block 18 is designed to compute the estimator (E), step E. There is a possibility of choosing the type of gradient averaging and a parameter for calculating the integrals in the estimator (E), the number of triangles in the mesh used to calculate the estimator is shown in a special field. Steps 5-9 of paragraph B.9 form step E here.

[0172] Block 20 is a table designed to show the results of calculations and values of different parameters used in the processes of calculations. If user considers an error being too large, he or she can recomputed with changed initial parameters (STEP F1 or F2).

[0173] Referring now to FIG. 5, the solution domain and the zone of interest are set defining their geometry on the desktop of the PDE Toolbox. The coefficients and the source function are set in a known manner with the PDE Toolbox's facilities by using its panel buttons or drop menus.

[0174] The solution domain presents here a thin plate, which is heated overall by a constant heat source (f=10 everywhere). The material of the plate is assumed to be homogeneous so that we can take the diagonal diffusion coefficients to be equal to 1, and the off-diagonal coefficients to be equal to 0. For simplicity, we assume that we have homogeneous Dirichlet boundary condition only, i.e., the temperature is assumed to be zero over the boundary of the plate. The temperature distribution in this plate can be described then by the following BVP ${{{- \frac{\partial^{2}u}{\partial x_{1}^{2}}} - \frac{\partial^{2}u}{\partial x_{2}^{2}}} = {10\quad {in}\quad \Omega}},$

[0175] The knowledge of the temperature, especially at some critical areas, is very important for making the right design solutions, which can save, e.g., material resources or help to improve the geometry of the plate. In the domains like we are dealing with now which have concavity in the boundary, such critical area is neighbourhood of concavity point, which dictated our choice of the zone of interest.

[0176] After the setting of the problem, all the date of the problem are exported to our software, FIG. 6 shows PDE Toolbox's export window 26. Parameters gd refers to “geometry data”, sf refers to “set formula”, and ns refers to “labels”

[0177]FIG. 7 presents setting the boundary conditions using the Matlab® PDE Toolbox's means.

[0178]FIG. 8 presents exporting the decomposed geometry and boundary conditions to CHECKER software using the export window 26.

[0179] The export functions used in FIGS. 6 and 8 are provided by Matlab® PDE Toolbox.

[0180] After the previously defined data have been exported to the CHECKER software, the first finite element approximation (Primal Solution) is calculated using Block 12. The result of calculations is shown in a new popup window 22, which presents the 3D visualization of the approximate solution. The used mesh can be obtained (see FIG. 9) by rotating the 3D visualization.

[0181] Block 14 by brute force method computes the reference solution on very fine mesh and tries to find the exact value of the problem-oriented criterion. This brute force method is not advisable for using in the engineering practice since it takes a large amount of computational time and memory. The brute force methods may require 100 times computer resources (processor speed, processing time and memory) as the new method herein described. The reference solution here is computed only for an illustration of the invention as it gives a more or less reliable reference result. The results of performance of Block 14 are shown in Table 20 in FIG. 12 (“exact error”). Ordinary user does not need Block 14.

[0182] Block 16 constructs the adjoint mesh and solves the adjoint problem (with PDE Toolbox). In the present implementation the function (ù) in the adjoint problem is set by default to 1 in the zone of interest and zero outside of it. Further implementation will make it possible to set the function (ù) arbitrarily, which can help to analyse critical areas more carefully. FIG. 10 shows the results of calculations of the adjoint problem in a new pop-up window 24 similarly to FIG. 9. In Block 16 we have also a possibility to construct another adjoint mesh condensed in the zone of interest and make new calculations, which is shown in 3D visualization in FIG. 11.

[0183] After putting window 24 to the background we can make visible the table 20 with the results of all previous calculations (FIG. 12).

[0184] All the blocks compute all the approximate solutions and the estimator using formulas as described above. Block 12 computes the first finite element approximation. Block 16 computes the second finite element approximation (for the adjoint/auxiliary problem). Block 18 computes the value of the estimator using the invented formula.

[0185] After getting the result user is able to consider if the estimator shows that the first approximation isn't enough accurate, he/she can change initial parameters and recompute a new approximation and a new estimator.

III Model Example—One Dimensional Case

[0186] The model depicts a heated rod, which is insulated but heated on its length. The rods ends are kept in zero temperature. The heating is defined by the source function. The designer gets advantage when he/she is able to compute temperature distribution more accurately and computationally cheaper in critical area.

[0187] We begin with forming a simple problem: find the function u such that

−u{umlaut over ()}(x)=f(x) in Ω=(0,1),  (1)

u(0)=u(1)=0,  (2)

[0188] where ${f(x)} = \left\{ \begin{matrix} {2\alpha} & {{{\exp \left( {\frac{1}{s^{2}} - \frac{1}{p}} \right)} \cdot \left\lbrack {{{- 2}\left( {x - x_{0}} \right)^{2}} + {4{p\left( {x - x_{0}} \right)}^{2}} + p^{2}} \right\rbrack \cdot \frac{1}{p^{4}}},} \\ \quad & {{{{if}\quad x} \in \left( {a,b} \right) \Subset \left( {0,1} \right)},} \\ {0,} & {{otherwise},} \end{matrix} \right.$

[0189] p=s²−(x−x₀)², s=½(b−a), x₀=½(a+b), and α is a positive real number.) Here a, b are coordinates of two sides of the rod. f(x) is a function that has a meaning of “heating function”. It shows t he amount of heat given to each elementary part of the rod. x is a coordinate changing along the rod, x₀ is a central point inside (a,b). s, p, and α: are positive parameters that define the shape of f(x). It should be noted that such a form of “f” is taken only for a particular example. u(x) has a meaning of the temperature of the rod at point x

[0190]FIG. 14 presents the shape of the source function. The exact solution of problem (1)-(2) is ${u(x)} = \left\{ \begin{matrix} {{\alpha \cdot {\exp \left( {\frac{1}{s^{2}} - \frac{1}{p}} \right)}},} & {{{{if}\quad x} \in \left( {a,b} \right) \Subset \left( {0,1} \right)},} \\ {0,} & {{otherwise}.} \end{matrix} \right.$

[0191] The exact and approximate solutions of problem (1)-(2) (full line) and the zone of interest (dotted line) are marked in FIG. 15.

[0192] As a quantity of interest, we take the following integral $\begin{matrix} {{{\int_{0}^{1}{{\phi (x)}\left( {{u(x)} - {u_{h}(x)}} \right){x}}},{where}}{{\phi (x)} = \left\{ \begin{matrix} {1,} & {{{if}\quad x} \in \left( {z_{1},z_{2}} \right)} \\ {0,} & {{otherwise}.} \end{matrix} \right.}} & (3) \end{matrix}$

[0193] where

[0194] In what follows, M denotes the number of elements in the mesh for the primal problem, N stands for the number of elements in the mesh used for the corresponding adjoint problem. In all the tests below, M=8, a=0, b=1.0, and α=1.0.

[0195] 1. Adjoint Problem is Solved on Uniformly Refined Meshes

[0196] First, we present the results of numerical experiments where the uniform meshes are used, i.e., h=1/M and τ=1/N.

EXAMPLE 1

[0197] In this series of numerical tests, (z₁,z₂)=(0.375,0.625) (cf. FIG. 15).

[0198] In Table I, we present the numerical results for problem (1)-(2) with M=8 and N=k·M, k=2,3,4,5,6,7,8. TABLE I The results of performance of the estimator E for Example 1. M N E₀ E₁ E criterion I_(eff) 8 16 0.00693883 0.00238174 0.00932058 0.00921705 1.01123239 8 24 0.00820668 0.00098981 0.00919649 0.00921705 0.99776967 8 32 0.00864915 0.00053743 0.00918658 0.00921705 0.99669427 8 40 0.00885372 0.00033653 0.00919025 0.00921705 0.99709278 8 48 0.00896479 0.00023026 0.00919505 0.00921705 0.99761349 8 56 0.00903174 0.00016737 0.00919911 0.00921705 0.99805336 8 64 0.00907518 0.00012710 0.00920229 0.00921705 0.99839820

[0199] The last column of the table presents the so-called “effectivity index”, which is often used to give a normalized measure of the quantity of error estimation. In our case, this index is computed as follows: $\begin{matrix} {I_{eff} = \frac{{E\left( {u_{h},v_{\tau}} \right)}}{{\int_{0}^{1}{{\phi (x)}\left( {{u(x)} - {u_{h}(x)}} \right){x}}}}} & (4) \end{matrix}$

[0200] The dependence of I_(eff) on the number k is presented on FIG. 16. It is easy to see that the estimator E works quite well even for very modest values of N.

[0201] 2. Adjoint Problem is Solved on Condensed Meshes

[0202] In this subsection, we present the results of numerical experiments, where the mesh used for solving the adjoint problem is condensed around the “zone of interest” (z₁,z₂). As before, h=1/M . Now, we are aimed to show that to have a good quality of the error estimation it is not necessarily required to also use globally refined meshes for the adjoint problem. We find that essentially the same result can be obtained on the mesh refined only in the “zone of interest” (i.e., we have less degrees of freedom and, thus, save computational costs). Thus, in the tests of Example 2, the mesh T_(τ) is only refined in a certain interval (q₁,q₂) that contains (z₁,z₂). To numerically qualify the respective meshes, we introduce positive numbers M_(i),i=1,2,3, that correspond to the number of elements in the mesh for the primal problem in the intervals (0,q₁), (q₁,q₂), and (q₂,1.0), respectively. The numbers of elements in the mesh used for the adjoint problem in the intervals (0,q₁), (q₁,q₂), and (q₂,1.0) are defined in terms of two positive numbers k₁ and k₂ as follows—M₁·k₁, M₂·k₂, and M₃·k₁, respectively. Thus, the density of the mesh used for the adjoint problem with respect to the mesh used for the primal problem inside the interval (q₁,q₂) is given by k₂, and outside of the interval (q₁,q₂)—by k₁. Evidently, the total number of elements in the mesh used for the adjoint problem is given by N=M₁·k₁+M₂·k₂+M₃·k₁, see FIG. 17, showing meshes T_(h) and T_(τ) used for problem (1)-(2).

EXAMPLE 2 We take (z₁,z₂)=(0.500,0.750) and (q₁,q₂)=(0.375,0.875). The results of the tests for various values of k_(i) are presented in Table II.

[0203] TABLE II The results of performance of the estimator E for Example 2. M₁ M₂ M₃ k₁ k₂ M N  E criterion I_(eff) 3 4 1 3 3 8 24 0.00495048 0.00500423 0.98925780 3 4 1 2 3 8 20 0.00495048 0.00500423 0.98925777 3 4 1 1 3 8 16 0.00495048 0.00500423 0.98925773 3 4 1 1 2 8 12 0.00493566 0.00500423 0.98629572 6 8 2 3 3 16 48 0.00122594 0.00122749 0.99873983 6 8 2 2 3 16 40 0.00122594 0.00122749 0.99873972 6 8 2 1 3 16 32 0.00122594 0.00122749 0.99873956 6 8 2 1 2 16 24 0.00123056 0.00122749 1.00249939

[0204] We see that the quality of the error estimation remains quite good even if ${\frac{M}{N} = 1.5},$

[0205] what shows the effectivity of local mesh refinement in the “zone of interest”.

[0206] Referring now to FIG. 12 to the results exposed in the table 20 we clearly observe good performance of the estimator for two dimensional problems. The “exact error” is based on the reference solution computed by brute force method used instead of the exact solution. The “exact error” means the relevant quantity of interest computed by the same formula (4) as presented paragraph B.3.

[0207] In the above examples the models depict diffusion type processes, which arise often in various engineering applications. A typical diffusion process is heat propagation inside a body. So that physically our examples can be considered as problems on the distribution of a heat inside a body with given temperature at the boundary and a certain distribution (f) of the heat source. It is worth outlining that the algorithm suggested is applicable not only to such type of problems, but for all other physical models that can be described in terms of linear elliptic equations (e.g., linear elasticity, electrostatic problems, certain models in the theory of plates and shells). We refer to diffusion type problems as to a simple and transparent example.

REFERENCES

[0208] [1]. Babu{haeck over (s)}ka, T. Strouboulis. The Finite Element Method and its Reliability, Oxford University Press Inc., New York, 2001.

[0209] [2] R. Becker, R. Rannacher. A feed-back approach to error control in finite element methods: Basic approach and examples. East-West J. Numer. Math., 4, 237-264, 1996.

[0210] [3] S. Korotov, P. Neittaanmäki, S. Repin. A posteriori error estimation of goal-oriented quantities by the superconvergence patch recovery. J. Numer. Math. 11, 33-59, 2003.

[0211] [4] J. T. Oden, S. Prudhomme. Goal-oriented error estimation and adaptivity for the finite element method. Comput. Math. Appl., 41, 735-756, 2001.

[0212] [5] R. Verfurth. A review of a posteriori error estimation and adaptive mesh-refinement techniques), Wiley-Teubner, 1996. 

1. Method for verification of the accuracy of numerical data measured in terms of given problem-oriented criteria, where the numerical data are computed in the process of solution of a boundary value problem, which is defined by one or several partial differential equations (PDEs), governing an unknown physical quantity (u) in a solution domain, and containing a set of given coefficients, describing physical properties the media, and a given source function (f), and two types of boundary conditions, where the first type, called the Dirichlet boundary condition, prescribes a behaviour of the physical quantity (u) on the first part of a boundary of the solution domain, called the Dirichlet boundary (Γ₁), by a given function (u₀), and the second type, called the Neumann boundary condition, prescribes a behaviour of partial derivatives of the physical quantity (u) on the second part of the boundary of the solution domain, called the Neumann boundary (Γ₂) by a given boundary function (g), and where the Dirichlet boundary and the Neumann boundary do not intersect and their union forms the solution domain boundary (Γ) containing steps of a) forming a primal problem and finding its finite element approximation, called as the first approximation (u_(h)), using a standard finite element mesh, called as the first mesh (T_(h)), and the first set of basic functions (w_(h)), thus obtaining said numerical data, and b) defining a problem-oriented criterion by choosing a zone of interest (ω) in the solution domain (Ω) and a weight function (φ) defined in the zone of interest, and c) forming an auxiliary problem, using the zone of interest (ω) and the weight function (φ), and finding its finite element approximation, called as the second approximation (v_(τ)), using another standard finite element mesh, called as the second mesh (T_(τ)), non-coinciding with the first mesh (T_(h)), and the second set of basic functions (w_(τ)), obtaining the second set of numerical data, and then d) computing an estimator (E) for the problem-oriented criterion using the given data, the said data and the second set of data.
 2. Method according to claim 1, characterized in that the estimator (E) is a sum of the first term (E₀) and the second term (E₁), where a) the first term (E₀) is computable as a sum of three parts, where the first part is an integral over the solution domain (Ω) of a product of the source function (f) and the second approximation (v_(τ)), the second part is an integral over the Neumann boundary (Γ₂) of a product of the boundary function (g) and the second approximation (v_(τ)), and the third part is a minus integral over the solution domain (Ω) of an energy scalar products of the gradients of the first (u_(h)) and the second (v_(τ)) approximations, and b) the second term (E₁) is the integral over the solution domain (Ω) of the energy scalar product of two vector-functions, where the first vector-function is the difference between the gradient of the first approximation (u_(h)) and the averaged gradient of the first approximation (u_(h)), and the second vector-function is the difference between the gradient of the second approximation (v_(τ)) and the averaged gradient of the second approximation (v_(τ)).
 3. Method according to claim 1 or 2, characterized in that the second mesh (T_(τ)) is condenced in the zone of interest.
 4. Method according to claim 1, characterized in that the first and the second (v_(τ)) approximations are of the Galerkin type.
 5. Method according to claim 2, characterized in that the boundary-value problem describes a physical process in a form $\begin{matrix} {{{- {\sum\limits_{i,{j = 1}}^{d}{\frac{\partial\quad}{\partial x_{i}}\left( {a_{ij}\frac{\partial u}{\partial x_{j}}} \right)}}} = {f\quad {in}\quad \Omega}},} & (1) \end{matrix}$

u=u ₀ on Γ₁,  (2) $\begin{matrix} {{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u}{\partial x_{j}}n_{i}}} = {g\quad {on}\quad {\Gamma_{2}.}}} & (3) \end{matrix}$

where relation (1) is a process governing equation in the solution domain (Ω), where a_(ij=a) _(ij)(x ₁, . . . ,x_(d)),i,j=1, . . . ,d, are the given coefficients, which are bounded functions, describing physical properties of the respective media, f=f(x₁, . . . ,x_(d)) is the source function, which is a square summable function, and where relation (2) is the Dirichlet boundary condition, and the boundary function u₀=u₀(x₁, . . . ,x_(d)) belongs to a natural energy class of the problem, and where relation (3) is the Neumann boundary condition, and the boundary function g=g(x₁, . . . ,x_(d)) is a square summable function, and symbol n_(i) denotes the i-th component of the outward normal vector n=n(x₁, . . . ,x_(d)) to the boundary Γ, i.e., n=[n₁, . . . ,n_(d)]^(T), and the first approximation (u_(h)) is defined as a function u_(h)=u_(h)(x₁, . . . ,x_(d))εV_(h)+u₀, such that ${{\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u_{h}}{\partial x_{j}}\frac{\partial w_{h}}{\partial x_{i}}{x}}}} = {{\int_{\Omega}{{fw}_{h}{x}}} + {\int_{\Gamma_{2}}{{gw}_{h}{s}\quad {\forall{w_{h} \in V_{h}}}}}}},$

where V_(h) is the first finite-dimensional space constructed by means of standard basis functions (w_(h)), which vanish on the Dirichlet boundary (Γ₁), and the problem-oriented criterion is presented by the integral $\begin{matrix} {{\int_{\Omega}{{\phi \left( {u - u_{h}} \right)}{x}}},} & (4) \end{matrix}$

where φ=φ(x₁, . . . ,x_(d)) is a weight function vanishing outside of the zone of interest (ω), and the second approximation (v_(τ)) is defined as a function v_(τ)=v_(τ)(x₁, . . . ,x_(d))εV_(τ), such that ${{\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ji}\frac{\partial v_{\tau}}{\partial x_{j}}\frac{\partial w_{\tau}}{\partial x_{i}}{x}}}} = {\int_{\Omega}{\phi \quad w_{\tau}{x}\quad {\forall{w_{\tau} \in V_{\tau}}}}}},$

where V_(τ) is the second finite-dimensional space constructed by means of standard basis functions (w_(τ)), which vanish on the boundary Γ, and where the problem-oriented criterion (4) is estimated by the estimator E(u_(h),v_(τ)) given by the following formula: E(u _(h) ,v _(τ))=E ₀(u _(h) ,v _(τ))+E ₁(u _(h) ,v _(τ)), where ${{E_{0}\left( {u_{h},v_{\tau}} \right)} = {{\int_{\Omega}{{fv}_{\tau}{x}}} + {\int_{\Gamma_{2}}{{gv}_{\tau}{s}}} - {\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{a_{ij}\frac{\partial u_{h}}{\partial x_{j}}\frac{\partial v_{\tau}}{\partial x_{i}}{x}}}}}},{and}$ ${{E_{1}\left( {u_{h},v_{\tau}} \right)} = {\int_{\Omega}{\sum\limits_{i,{j = 1}}^{d}{{a_{ij}\left( {\frac{\partial u_{h}}{\partial x_{j}} - {G_{h}^{j}\left( {\nabla u_{h}} \right)}} \right)}\left( {\frac{\partial v_{\tau}}{\partial x_{j}} - {G_{\tau}^{i}\left( {\nabla v_{\tau}} \right)}} \right){x}}}}},$

where $\frac{\partial u_{h}}{\partial x_{1}},\cdots \quad,\frac{\partial u_{h}}{\partial x_{d}}$

are the components of the gradient ${{\nabla u_{h}} = \left\lbrack {\frac{\partial u_{h}}{\partial x_{1}},\cdots \quad,\frac{\partial u_{h}}{\partial x_{d}}} \right\rbrack^{T}},$

of the first approximation (u_(h)) and $\frac{\partial v_{\tau}}{\partial x_{1}},\cdots \quad,\frac{\partial v_{\tau}}{\partial x_{d}}$

are the components of the gradient ${\nabla v_{\tau}} = \left\lbrack {\frac{\partial v_{\tau}}{\partial x_{1}},\cdots \quad,\frac{\partial v_{\tau}}{\partial x_{d}}} \right\rbrack^{T}$

of the second approximation (v_(τ)), and G_(h) ¹(∇u_(h)), . . . ,G_(h) ^(d)(∇u_(h)) are the components of the averaged gradient G_(h)(∇u_(h))=[G_(h) ¹(∇u_(h)), . . . ,G_(h) ^(d)(∇u_(h)]^(T), which is obtained by mapping the gradient ∇u_(h), which is constant over each element of the first mesh (T_(h)), into a vector-valued continuous piecewise affine function (G_(h)(∇u_(h))) by setting each its nodal value in the first mesh (T_(h)) as the mean value of ∇u_(h) on all elements of the patch (P(x_(o))) associated with a corresponding node (x_(o)), and where G_(τ) ¹(∇v_(τ)), . . . ,G_(τ) ^(d)(∇v_(τ)) are the components of the averaged gradient G_(τ)(∇v_(τ))=[G_(τ) ¹(∇v_(τ)), . . . ,G_(τ) ^(d)(∇v_(τ)]^(T), which is obtained by mapping the gradient ∇v_(τ), which is constant over each element of the second mesh (T_(τ)), into a vector-valued continuous piecewise affine function G_(τ)(∇v_(τ)) by setting each its nodal value in the second mesh (T_(τ)) as the mean value of ∇v_(τ) on all elements of the patch (P(x_(o))) associated with a corresponding node (x_(o)).
 6. Method according to claim 2, characterized in that the boundary value problem describes a mechanical problem for a solid body, made of linear elastic media, consisting of finding a vector-function (u), which represents a displacement field in the solid body (Ω), as follows $\begin{matrix} {{{- {\sum\limits_{j,k,{l = 1}}^{d}{\frac{\partial\quad}{\partial x_{j}}\left( {L_{ijkl}{ɛ_{kl}(u)}} \right)}}} = {f_{i}\quad {in}\quad \Omega}},} & (1) \end{matrix}$

u _(i) =u ₀ ^(i) Γ₁,  (2) $\begin{matrix} {{{\sum\limits_{j,k,{l = 1}}^{d}{n_{j}L_{ijkl}{ɛ_{kl}(u)}}} = {g_{i}\quad {on}\quad \Gamma_{2}}},} & (3) \end{matrix}$

where relation (1) is an equilibrium equation in the solution domain (Ω), where L_(ijkl)=L_(ijkl)(x₁, . . . ,x_(d)),i,j=1, . . . ,d, are the given coefficients, which are bounded functions, describing elastic properties of the respective body, and satisfy the following symmetry conditions L_(jikl)=L_(ijkl)=L_(klij), i, j, k, l=1, . . . ,d, and f=f(x₁, . . . ,x)=[f₁, . . . ,f_(d) ^(T)] is the source vector-function, describing a body force, which is a square summable function, and functions ε_(ij)(u),i j=1, . . . ,d, are defined as follows ${{ɛ_{ij}(u)} = {\frac{1}{2}\left( {\frac{\partial u_{i}}{\partial x_{j}} + \frac{\partial u_{j}}{\partial x_{i}}} \right)}},$

and where relation (2) is the Dirichlet boundary condition, and the boundary vector-function u₀=u₀(x₁, . . . ,x_(d))=[u₀ ¹, . . . ,u₀ ^(d)]^(T) belongs to the natural energy class of the problem, and relation (3) is the Neumann boundary condition, and the boundary vector-function g=g(x₁, . . . ,x_(d))=[g₁. . . ,g_(d)]^(T) is a square summable function, describing an external force, and symbol n_(i) denotes the i-th component of the outward normal vector n=n(x₁, . . . ,x_(d)) to the boundary Γ, and the first approximation (u_(h)) is defined as a vector-function u _(h) =u _(h)(x ₁ , . . . ,x _(d))=[u _(h) ¹ , . . . ,u _(h) ^(d)]^(T) δV _(h) +u ₀, such that ${{\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}\quad {L_{ijkl}{ɛ_{ij}\left( u_{h} \right)}{ɛ_{kl}\left( w_{h} \right)}\quad {x}}}} = {{\int_{\Omega}{f\quad \bullet \quad w_{h}{x}}} + {\int_{\Gamma_{2}}{g\quad \bullet \quad w_{h}{s}\quad {\forall{w_{h} \in V_{h}}}}}}},$

where (V_(h)) is the first finite-dimensional space constructed by means of standard basis vector-function (w_(h)) which vanish on the Dirichlet boundary δ₁, and the problem-oriented criterion is presented by the integral $\begin{matrix} {{\int_{\Omega}{\Phi \quad \bullet \quad \left( {u - u_{h}} \right){x}}},} & (4) \end{matrix}$

where Φ=Φ(x₁, . . . ,x_(d))=[φ₁, . . . ,φ_(d)]^(T) is a weight vector-function vanishing outside of the zone of interest (ω), and the second approximation (v_(τ)) is defined as a vector-function v _(τ) =v _(τ)(x ₁ , . . . ,x _(d))εV _(τ), such that ${{\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}\quad {L_{ijkl}{ɛ_{ij}\left( _{r} \right)}{ɛ_{kl}\left( w_{\tau} \right)}\quad {x}}}} = {\int_{\Omega}{\Phi \quad \bullet \quad w_{\tau}{x}\quad {\forall{w_{\tau} \in V_{\tau}}}}}},$

where (V_(τ)) is the second finite-dimensional space constructed by means of the standard basis vector-functions (w_(τ)), which vanish on the boundary Γ, and where the problem-oriented criterion (4) is estimated by the estimator E(u_(h),v_(τ)) given by the following formula: E(u _(h) ,v _(τ))=E ₀(u _(h) , . . . ,v _(τ))+E ₁(u _(h) , . . . ,v _(τ)), where ${{E_{0}\left( {u_{h},_{\tau}} \right)} = {{\int_{\Omega}{f\quad {\bullet }_{\tau}{x}}} + {\int_{\Gamma_{2}}{g\quad \bullet \quad _{\tau}{s}}} - {\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}\quad {L_{ijkl}{ɛ_{ij}\left( u_{h} \right)}{ɛ_{kl}\left( _{\tau} \right)}\quad {x}}}}}},{and}$ ${{E_{1}\left( {u_{h},_{\tau}} \right)} = {\int_{\Omega}{\sum\limits_{i,j,k,{l = 1}}^{d}\quad {{L_{ijkl}\left( {{ɛ_{ij}\left( u_{h} \right)} - {G_{h}^{i,j}\left( {ɛ\left( u_{h} \right)} \right)}} \right)}\left( {{ɛ_{kl}\left( _{\tau} \right)}\quad - {G_{\tau}^{k,l}\left( {ɛ\left( _{\tau} \right)} \right)}} \right){x}}}}},$

where ε_(ij)(u_(h)) is a (i,j) entry of the tensor (d×d matrix) of the first approximation u_(h), defined as ${{ɛ\left( u_{h} \right)} = \left\lbrack {\frac{1}{2}\left( {\frac{\partial u_{h}^{i}}{\partial x_{j}} + \frac{\partial u_{h}^{j}}{\partial x_{i}}} \right)} \right\rbrack_{i,{j = 1}}^{d}},{ɛ_{kl}\left( _{\tau} \right)}$

ε_(kl)(v_(τ)) is a (k,l) entry of the tensor (d×d matrix) of the second approximation (v_(τ)), defined as ${{ɛ\left( _{\tau} \right)} = \left\lbrack {\frac{1}{2}\left( {\frac{\partial v_{\tau}^{i}}{\partial x_{j}} + \frac{\partial _{\tau}^{j}}{\partial x_{i}}} \right)} \right\rbrack_{i,{j = 1}}^{d}},{{and}\quad {G_{h}^{i,j}\left( {ɛ\left( u_{h} \right)} \right)}}$

and G_(h) ^(i,j)(ε(u_(h))) is a (i,j) entry a d×d matrix-valued continuous piecewise affine function G_(h)(ε(u_(h)))=[G_(h) ^(i,j)(ε(u_(h)))]_(i,j=1) ^(d), which is obtained from the tensor (ε(u_(h))), which is a constant d×d matrix over each element of the first mesh, by setting each its nodal value as the mean value of (ε(u_(h))) on all elements of the patch (P(x_(o))) in the first mesh (T_(h)) associated with corresponding node (x_(o)), and G_(τ) ^(k,j)(ε(v_(τ))) is a (k,l) entry of a d×d matrix-valued continuous piecewise affine function G_(τ)(ε(v_(τ)))=[G_(τ) ^(i,j)(ε(v _(τ)))]_(i,j=1) ^(d), which is obtained from the tensor ((ε(v_(τ))), which is a constant d×d matrix over each element of the second mesh, by setting each its nodal value as the mean value of the tensor (δ(v_(τ))) on all elements of the patch (P(x_(o))) in the second mesh (T_(τ)), associated with corresponding node (x_(o)).
 7. Method for verification of the accuracy of numerical data on a digital computer, said digital computer comprising at least one central processing unit, memory, an input device and an output device, and where the numerical data are computed using finite element method (FEM) and in the process of solution of a boundary value problem (BVP), called as a primal problem, as the first approximation and BVP comprising at least one partial differential equation (PDE), a set of given coefficients, a given source function, and boundary conditions, the method comprising; setting data defining said BVP into the memory; setting the first parameters for a mesh, called the first mesh, into the memory; computing the first approximation and obtaining said numerical data and saving this data into the memory; selecting the parameters of a second mesh, and the parameters of the quantity of interest these forming an auxiliary problem with the PDE and saving these parameters into the memory; computing the solution of the auxiliary problem and thus obtaining the second approximation and saving it into the memory as the second numerical data; computing an error estimator using the set data, the first numerical data and second numerical data and presenting the computed estimator using the output device.
 8. Method according to claim 7, characterized in that a graphical user interface (GUI) is used to control the setting steps and computing steps.
 9. Method according to claim 7, characterized in that a separate software is formed having an interface with an existing FEM-software used for generating at least one mesh and for computing at least one approximation.
 10. Method according to claim 7, characterized in that the output device includes a display.
 11. Method according to claim 7, characterized in that at least one mesh is formed using a grid generator.
 12. Method according to claim 7, characterized in that at least one approximation is computed using a FE-solver.
 13. Method according to claim 7, characterized in that a reference solution is computed using a brute force method for testing the method.
 14. Method according to claim 8, characterized in that the GUI is provided with control blocks for setting data for the primal and auxiliary problems.
 15. Method according to claim 8, characterized in that the GUI is provided with a table for showing the result.
 16. Method according to claim 7, characterized in that a gradient of the first approximation, an averaged gradient of the first approximation, a gradient of the second approximation and an averaged gradient of the second approximation are computed, when computing the error estimator.
 17. Method according to claim 7, characterized in that a new set of parameters for at least one mesh is selected after the result is displayed and a new result is recomputed.
 18. Method according to claim 7, characterized in that at least one new result is computed using another given source function.
 19. A digital computer system programmed to perform method of claim
 7. 20. A computer-readable medium storing computer program implementing the method of claim
 7. 